home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Drag.p < prev    next >
Text File  |  1996-05-01  |  22KB  |  608 lines

  1. {
  2.      File:        Drag.p
  3.  
  4.      Contains:    Drag and Drop Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Drag;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __DRAG__}
  28. {$SETC __DRAG__ := 1}
  29.  
  30. {$I+}
  31. {$SETC DragIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __SCRAP__}
  35. {$I Scrap.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __APPLEEVENTS__}
  38. {$I AppleEvents.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __QUICKDRAW__}
  41. {$I Quickdraw.p}
  42. {$ENDC}
  43. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  44. {$IFC UNDEFINED __TEXTEDIT__}
  45. {$I TextEdit.p}
  46. {$ENDC}
  47. {$IFC UNDEFINED __FILES__}
  48. {$I Files.p}
  49. {$ENDC}
  50. {$IFC UNDEFINED __EVENTS__}
  51. {$I Events.p}
  52. {$ENDC}
  53. {$ENDC}
  54.  
  55. {$PUSH}
  56. {$ALIGN MAC68K}
  57. {$LibExport+}
  58.  
  59. {
  60. _________________________________________________________________________________________________________
  61.     
  62.  * DRAG MANAGER DATA TYPES
  63.       Currently there are two data types representing a drag in this interface file; ScrapRef and
  64.      DragReference.  It is safe to assume:
  65.      ScrapRef == DragReference
  66.      The two types can be used interchangably throughout the Drag interface file.  ScrapRef is the
  67.      new System 8 Drag Manager data type.  API's that are deprecated for System 8 will always
  68.      take a DragReference as their parameter.
  69.      For now though, use them interchangably.
  70. _________________________________________________________________________________________________________
  71. }
  72.  
  73. TYPE
  74.     DragReference                        = ScrapRef;
  75.     DragScrapRef                        = ScrapRef;
  76.     ItemReference                        = ScrapItemUserReference;
  77.     FlavorType                            = ScrapItemType;
  78. {
  79. _________________________________________________________________________________________________________
  80.     
  81.  * DRAG ATTRIBUTES
  82. _________________________________________________________________________________________________________
  83. }
  84.     DragAttributes                        = OptionBits;
  85.  
  86. CONST
  87.     kDragHasLeftSenderWindow    = $00000001;                    {  drag has left the source window since TrackDrag }
  88.     kDragInsideSenderApplication = $00000002;                    {  drag is occurring within the sender application }
  89.     kDragInsideSenderWindow        = $00000004;                    {  drag is occurring within the sender window }
  90.  
  91. {
  92. _________________________________________________________________________________________________________
  93.     
  94.  * DRAG IMAGE FLAGS
  95. _________________________________________________________________________________________________________
  96. }
  97.  
  98. TYPE
  99.     DragImageFlags                        = OptionBits;
  100.  
  101. CONST
  102.     kDragRegionAndImage            = $00000010;                    {  drag region and image }
  103.  
  104. {
  105. _________________________________________________________________________________________________________
  106.     
  107.  * DRAG IMAGE TRANSLUCENCY LEVELS
  108. _________________________________________________________________________________________________________
  109. }
  110.  
  111. TYPE
  112.     DragImageTranslucency                = UInt32;
  113.  
  114. CONST
  115.     kDragStandardTranslucency    = 0;                            {  65% image translucency (standard) }
  116.     kDragDarkTranslucency        = 1;                            {  50% image translucency }
  117.     kDragDarkerTranslucency        = 2;                            {  25% image translucency }
  118.     kDragOpaqueTranslucency        = 3;                            {  0% image translucency (opaque) }
  119.  
  120. {
  121. _________________________________________________________________________________________________________
  122.     
  123.  * DRAG DRAWING PROCEDURE MESSAGES
  124. _________________________________________________________________________________________________________
  125. }
  126.  
  127. TYPE
  128.     DragRegionMessage                    = SInt16;
  129.  
  130. CONST
  131.     kDragRegionBegin            = 1;                            {  initialize drawing }
  132.     kDragRegionDraw                = 2;                            {  draw drag feedback }
  133.     kDragRegionHide                = 3;                            {  hide drag feedback }
  134.     kDragRegionIdle                = 4;                            {  drag feedback idle time }
  135.     kDragRegionEnd                = 5;                            {  end of drawing }
  136.  
  137. {
  138. _________________________________________________________________________________________________________
  139.     
  140.  * ZOOM ACCELERATION
  141. _________________________________________________________________________________________________________
  142. }
  143.  
  144. TYPE
  145.     ZoomAcceleration                    = SInt16;
  146.  
  147. CONST
  148.     kZoomNoAcceleration            = 0;                            {  use linear interpolation }
  149.     kZoomAccelerate                = 1;                            {  ramp up step size }
  150.     kZoomDecelerate                = 2;                            {  ramp down step size }
  151.  
  152. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  153. {
  154. _________________________________________________________________________________________________________
  155.     
  156.  * FLAVOR FLAGS
  157. _________________________________________________________________________________________________________
  158. }
  159.  
  160. TYPE
  161.     FlavorFlags                            = OptionBits;
  162.  
  163. CONST
  164.     flavorSenderOnly            = $01;                            {  flavor is available to sender only }
  165.     flavorSenderTranslated        = $02;                            {  flavor is translated by sender }
  166.     flavorNotSaved                = $04;                            {  flavor should not be saved }
  167.     flavorSystemTranslated        = $0100;                        {  flavor is translated by system }
  168.  
  169. {
  170. _________________________________________________________________________________________________________
  171.     
  172.  * SPECIAL FLAVORS
  173. _________________________________________________________________________________________________________
  174. }
  175.     flavorTypeHFS                = 'hfs ';                        {  flavor type for HFS data }
  176.     flavorTypePromiseHFS        = 'phfs';                        {  flavor type for promised HFS data }
  177.     flavorTypeDirectory            = 'diry';                        {  flavor type for AOCE directories }
  178.  
  179. {
  180. _________________________________________________________________________________________________________
  181.     
  182.  * DRAG TRACKING HANDLER MESSAGES
  183. _________________________________________________________________________________________________________
  184. }
  185.  
  186. TYPE
  187.     DragTrackingMessage                    = SInt16;
  188.  
  189. CONST
  190.     kDragTrackingEnterHandler    = 1;                            {  drag has entered handler }
  191.     kDragTrackingEnterWindow    = 2;                            {  drag has entered window }
  192.     kDragTrackingInWindow        = 3;                            {  drag is moving within window }
  193.     kDragTrackingLeaveWindow    = 4;                            {  drag has exited window }
  194.     kDragTrackingLeaveHandler    = 5;                            {  drag has exited handler }
  195.  
  196. {
  197. _________________________________________________________________________________________________________
  198.     
  199.  * HFS FLAVORS
  200. _________________________________________________________________________________________________________
  201. }
  202.  
  203. TYPE
  204.     HFSFlavorPtr = ^HFSFlavor;
  205.     HFSFlavor = RECORD
  206.         fileType:                OSType;                                    {  file type  }
  207.         fileCreator:            OSType;                                    {  file creator  }
  208.         fdFlags:                UInt16;                                    {  Finder flags  }
  209.         fileSpec:                FSSpec;                                    {  file system specification  }
  210.     END;
  211.  
  212.     PromiseHFSFlavorPtr = ^PromiseHFSFlavor;
  213.     PromiseHFSFlavor = RECORD
  214.         fileType:                OSType;                                    {  file type  }
  215.         fileCreator:            OSType;                                    {  file creator  }
  216.         fdFlags:                UInt16;                                    {  Finder flags  }
  217.         promisedFlavor:            FlavorType;                                {  promised flavor containing an FSSpec  }
  218.     END;
  219.  
  220. {
  221. _________________________________________________________________________________________________________
  222.     
  223.  * APPLICATION-DEFINED DRAG HANDLER ROUTINES
  224. _________________________________________________________________________________________________________
  225. }
  226.     DragTrackingHandlerProcPtr = ProcPtr;  { FUNCTION DragTrackingHandler(message: DragTrackingMessage; theWindow: WindowPtr; handlerRefCon: UNIV Ptr; theDrag: DragReference): OSErr; }
  227.  
  228.     DragTrackingHandlerUPP = UniversalProcPtr;
  229.  
  230. CONST
  231.     uppDragTrackingHandlerProcInfo = $00003FA0;
  232.  
  233. FUNCTION NewDragTrackingHandlerProc(userRoutine: DragTrackingHandlerProcPtr): DragTrackingHandlerUPP;
  234.     {$IFC NOT GENERATINGCFM }
  235.     INLINE $2E9F;
  236.     {$ENDC}
  237.  
  238. FUNCTION CallDragTrackingHandlerProc(message: DragTrackingMessage; theWindow: WindowPtr; handlerRefCon: UNIV Ptr; theDrag: DragReference; userRoutine: DragTrackingHandlerUPP): OSErr;
  239.     {$IFC NOT GENERATINGCFM}
  240.     INLINE $205F, $4E90;
  241.     {$ENDC}
  242.  
  243. TYPE
  244.     DragReceiveHandlerProcPtr = ProcPtr;  { FUNCTION DragReceiveHandler(theWindow: WindowPtr; handlerRefCon: UNIV Ptr; theDrag: DragReference): OSErr; }
  245.  
  246.     DragReceiveHandlerUPP = UniversalProcPtr;
  247.  
  248. CONST
  249.     uppDragReceiveHandlerProcInfo = $00000FE0;
  250.  
  251. FUNCTION NewDragReceiveHandlerProc(userRoutine: DragReceiveHandlerProcPtr): DragReceiveHandlerUPP;
  252.     {$IFC NOT GENERATINGCFM }
  253.     INLINE $2E9F;
  254.     {$ENDC}
  255.  
  256. FUNCTION CallDragReceiveHandlerProc(theWindow: WindowPtr; handlerRefCon: UNIV Ptr; theDrag: DragReference; userRoutine: DragReceiveHandlerUPP): OSErr;
  257.     {$IFC NOT GENERATINGCFM}
  258.     INLINE $205F, $4E90;
  259.     {$ENDC}
  260. {
  261. _________________________________________________________________________________________________________
  262.     
  263.  * APPLICATION-DEFINED ROUTINES
  264. _________________________________________________________________________________________________________
  265. }
  266.  
  267. TYPE
  268.     DragSendDataProcPtr = ProcPtr;  { FUNCTION DragSendData(theType: FlavorType; dragSendRefCon: UNIV Ptr; theItemRef: ItemReference; theDrag: DragReference): OSErr; }
  269.  
  270.     DragSendDataUPP = UniversalProcPtr;
  271.  
  272. CONST
  273.     uppDragSendDataProcInfo = $00003FE0;
  274.  
  275. FUNCTION NewDragSendDataProc(userRoutine: DragSendDataProcPtr): DragSendDataUPP;
  276.     {$IFC NOT GENERATINGCFM }
  277.     INLINE $2E9F;
  278.     {$ENDC}
  279.  
  280. FUNCTION CallDragSendDataProc(theType: FlavorType; dragSendRefCon: UNIV Ptr; theItemRef: ItemReference; theDrag: DragReference; userRoutine: DragSendDataUPP): OSErr;
  281.     {$IFC NOT GENERATINGCFM}
  282.     INLINE $205F, $4E90;
  283.     {$ENDC}
  284. {$ENDC}
  285. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  286.  
  287. TYPE
  288.     DragInputProcPtr = ProcPtr;  { FUNCTION DragInput(VAR mouse: Point; VAR modifiers: SInt16; dragInputRefCon: UNIV Ptr; theDrag: ScrapRef): OSErr; }
  289.  
  290.     DragInputUPP = UniversalProcPtr;
  291.  
  292. CONST
  293.     uppDragInputProcInfo = $00003FE0;
  294.  
  295. FUNCTION NewDragInputProc(userRoutine: DragInputProcPtr): DragInputUPP;
  296.     {$IFC NOT GENERATINGCFM }
  297.     INLINE $2E9F;
  298.     {$ENDC}
  299.  
  300. FUNCTION CallDragInputProc(VAR mouse: Point; VAR modifiers: SInt16; dragInputRefCon: UNIV Ptr; theDrag: ScrapRef; userRoutine: DragInputUPP): OSErr;
  301.     {$IFC NOT GENERATINGCFM}
  302.     INLINE $205F, $4E90;
  303.     {$ENDC}
  304.  
  305. TYPE
  306.     DragDrawingProcPtr = ProcPtr;  { FUNCTION DragDrawing(message: DragRegionMessage; showRegion: RgnHandle; showOrigin: Point; hideRegion: RgnHandle; hideOrigin: Point; dragDrawingRefCon: UNIV Ptr; theDrag: ScrapRef): OSErr; }
  307.  
  308.     DragDrawingUPP = UniversalProcPtr;
  309.  
  310. CONST
  311.     uppDragDrawingProcInfo = $000FFFA0;
  312.  
  313. FUNCTION NewDragDrawingProc(userRoutine: DragDrawingProcPtr): DragDrawingUPP;
  314.     {$IFC NOT GENERATINGCFM }
  315.     INLINE $2E9F;
  316.     {$ENDC}
  317.  
  318. FUNCTION CallDragDrawingProc(message: DragRegionMessage; showRegion: RgnHandle; showOrigin: Point; hideRegion: RgnHandle; hideOrigin: Point; dragDrawingRefCon: UNIV Ptr; theDrag: ScrapRef; userRoutine: DragDrawingUPP): OSErr;
  319.     {$IFC NOT GENERATINGCFM}
  320.     INLINE $205F, $4E90;
  321.     {$ENDC}
  322. {$ENDC}
  323. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  324. {
  325. _________________________________________________________________________________________________________
  326.     
  327.  * INSTALLING AND REMOVING HANDLERS API'S
  328. _________________________________________________________________________________________________________
  329. }
  330. FUNCTION InstallTrackingHandler(trackingHandler: DragTrackingHandlerUPP; theWindow: WindowPtr; handlerRefCon: UNIV Ptr): OSErr;
  331.     {$IFC NOT GENERATINGCFM}
  332.     INLINE $7001, $ABED;
  333.     {$ENDC}
  334. FUNCTION InstallReceiveHandler(receiveHandler: DragReceiveHandlerUPP; theWindow: WindowPtr; handlerRefCon: UNIV Ptr): OSErr;
  335.     {$IFC NOT GENERATINGCFM}
  336.     INLINE $7002, $ABED;
  337.     {$ENDC}
  338. FUNCTION RemoveTrackingHandler(trackingHandler: DragTrackingHandlerUPP; theWindow: WindowPtr): OSErr;
  339.     {$IFC NOT GENERATINGCFM}
  340.     INLINE $7003, $ABED;
  341.     {$ENDC}
  342. FUNCTION RemoveReceiveHandler(receiveHandler: DragReceiveHandlerUPP; theWindow: WindowPtr): OSErr;
  343.     {$IFC NOT GENERATINGCFM}
  344.     INLINE $7004, $ABED;
  345.     {$ENDC}
  346. {
  347. _________________________________________________________________________________________________________
  348.     
  349.  * CREATING & DISPOSING
  350. _________________________________________________________________________________________________________
  351. }
  352. FUNCTION NewDrag(VAR theDrag: DragReference): OSErr;
  353.     {$IFC NOT GENERATINGCFM}
  354.     INLINE $7005, $ABED;
  355.     {$ENDC}
  356. FUNCTION DisposeDrag(theDrag: DragReference): OSErr;
  357.     {$IFC NOT GENERATINGCFM}
  358.     INLINE $7006, $ABED;
  359.     {$ENDC}
  360. {
  361. _________________________________________________________________________________________________________
  362.     
  363.  * ADDING DRAG ITEM FLAVORS
  364. _________________________________________________________________________________________________________
  365. }
  366. FUNCTION AddDragItemFlavor(theDrag: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: UNIV Ptr; dataSize: Size; theFlags: FlavorFlags): OSErr;
  367.     {$IFC NOT GENERATINGCFM}
  368.     INLINE $7007, $ABED;
  369.     {$ENDC}
  370. FUNCTION SetDragItemFlavorData(theDrag: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: UNIV Ptr; dataSize: Size; dataOffset: UInt32): OSErr;
  371.     {$IFC NOT GENERATINGCFM}
  372.     INLINE $7009, $ABED;
  373.     {$ENDC}
  374. {
  375. _________________________________________________________________________________________________________
  376.     
  377.  * PROVIDING CALLBACK PROCEDURES
  378. _________________________________________________________________________________________________________
  379. }
  380. FUNCTION SetDragSendProc(theDrag: DragReference; sendProc: DragSendDataUPP; dragSendRefCon: UNIV Ptr): OSErr;
  381.     {$IFC NOT GENERATINGCFM}
  382.     INLINE $700A, $ABED;
  383.     {$ENDC}
  384. {$ENDC}
  385. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  386. FUNCTION SetDragInputProc(theDrag: ScrapRef; inputProc: DragInputUPP; dragInputRefCon: UNIV Ptr): OSErr;
  387.     {$IFC NOT GENERATINGCFM}
  388.     INLINE $700B, $ABED;
  389.     {$ENDC}
  390. FUNCTION SetDragDrawingProc(theDrag: ScrapRef; drawingProc: DragDrawingUPP; dragDrawingRefCon: UNIV Ptr): OSErr;
  391.     {$IFC NOT GENERATINGCFM}
  392.     INLINE $700C, $ABED;
  393.     {$ENDC}
  394. {
  395. _________________________________________________________________________________________________________
  396.     
  397.  * SETTING THE DRAG IMAGE
  398. _________________________________________________________________________________________________________
  399. }
  400. FUNCTION SetDragImage(theDrag: ScrapRef; imagePixMap: PixMapHandle; imageRgn: RgnHandle; imageOffsetPt: Point; theImageFlags: DragImageFlags): OSStatus; C;
  401. {$ENDC}
  402. {$IFC FOR_SYSTEM8_COOPERATIVE }
  403. {
  404. _________________________________________________________________________________________________________
  405.     
  406.  * SETTING THE DRAG IMAGE TRANSLUCENCY LEVEL
  407. _________________________________________________________________________________________________________
  408. }
  409. FUNCTION SetDragImageTranslucency(theDrag: ScrapRef; newLevel: DragImageTranslucency): OSStatus; C;
  410. {
  411. _________________________________________________________________________________________________________
  412.     
  413.  * PERFORMING A DRAG
  414. _________________________________________________________________________________________________________
  415. }
  416. FUNCTION TrackAEDrag(theDrag: ScrapRef; VAR theEvent: AppleEvent; theRegion: RgnHandle): OSStatus; C;
  417. {$ENDC}
  418. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  419. FUNCTION TrackDrag(theDrag: DragReference; {CONST}VAR theEvent: EventRecord; theRegion: RgnHandle): OSErr;
  420.     {$IFC NOT GENERATINGCFM}
  421.     INLINE $700D, $ABED;
  422.     {$ENDC}
  423. {
  424. _________________________________________________________________________________________________________
  425.     
  426.  * GETTING DRAG ITEM INFORMATION
  427. _________________________________________________________________________________________________________
  428. }
  429. FUNCTION CountDragItems(theDrag: DragReference; VAR numItems: UInt16): OSErr;
  430.     {$IFC NOT GENERATINGCFM}
  431.     INLINE $700E, $ABED;
  432.     {$ENDC}
  433. FUNCTION GetDragItemReferenceNumber(theDrag: DragReference; index: UInt16; VAR theItemRef: ItemReference): OSErr;
  434.     {$IFC NOT GENERATINGCFM}
  435.     INLINE $700F, $ABED;
  436.     {$ENDC}
  437. FUNCTION CountDragItemFlavors(theDrag: DragReference; theItemRef: ItemReference; VAR numFlavors: UInt16): OSErr;
  438.     {$IFC NOT GENERATINGCFM}
  439.     INLINE $7010, $ABED;
  440.     {$ENDC}
  441. FUNCTION GetFlavorType(theDrag: DragReference; theItemRef: ItemReference; index: UInt16; VAR theType: FlavorType): OSErr;
  442.     {$IFC NOT GENERATINGCFM}
  443.     INLINE $7011, $ABED;
  444.     {$ENDC}
  445. FUNCTION GetFlavorFlags(theDrag: DragReference; theItemRef: ItemReference; theType: FlavorType; VAR theFlags: FlavorFlags): OSErr;
  446.     {$IFC NOT GENERATINGCFM}
  447.     INLINE $7012, $ABED;
  448.     {$ENDC}
  449. FUNCTION GetFlavorDataSize(theDrag: DragReference; theItemRef: ItemReference; theType: FlavorType; VAR dataSize: Size): OSErr;
  450.     {$IFC NOT GENERATINGCFM}
  451.     INLINE $7013, $ABED;
  452.     {$ENDC}
  453. FUNCTION GetFlavorData(theDrag: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: UNIV Ptr; VAR dataSize: Size; dataOffset: UInt32): OSErr;
  454.     {$IFC NOT GENERATINGCFM}
  455.     INLINE $7014, $ABED;
  456.     {$ENDC}
  457. {$ENDC}
  458. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  459. {
  460. _________________________________________________________________________________________________________
  461.     
  462.  * DRAG ITEM BOUNDS
  463. _________________________________________________________________________________________________________
  464. }
  465. FUNCTION GetDragItemBounds(theDrag: ScrapRef; theItemRef: ItemReference; VAR itemBounds: Rect): OSErr;
  466.     {$IFC NOT GENERATINGCFM}
  467.     INLINE $7015, $ABED;
  468.     {$ENDC}
  469. FUNCTION SetDragItemBounds(theDrag: ScrapRef; theItemRef: ItemReference; {CONST}VAR itemBounds: Rect): OSErr;
  470.     {$IFC NOT GENERATINGCFM}
  471.     INLINE $7016, $ABED;
  472.     {$ENDC}
  473. {
  474. _________________________________________________________________________________________________________
  475.     
  476.  * DROP LOCATIONS
  477. _________________________________________________________________________________________________________
  478. }
  479. FUNCTION GetDropLocation(theDrag: ScrapRef; VAR dropLocation: AEDesc): OSErr;
  480.     {$IFC NOT GENERATINGCFM}
  481.     INLINE $7017, $ABED;
  482.     {$ENDC}
  483. FUNCTION SetDropLocation(theDrag: ScrapRef; {CONST}VAR dropLocation: AEDesc): OSErr;
  484.     {$IFC NOT GENERATINGCFM}
  485.     INLINE $7018, $ABED;
  486.     {$ENDC}
  487. {
  488. _________________________________________________________________________________________________________
  489.     
  490.  * GETTING INFORMATION ABOUT A DRAG
  491. _________________________________________________________________________________________________________
  492. }
  493. FUNCTION GetDragAttributes(theDrag: ScrapRef; VAR flags: DragAttributes): OSErr;
  494.     {$IFC NOT GENERATINGCFM}
  495.     INLINE $7019, $ABED;
  496.     {$ENDC}
  497. FUNCTION GetDragMouse(theDrag: ScrapRef; VAR mouse: Point; VAR globalPinnedMouse: Point): OSErr;
  498.     {$IFC NOT GENERATINGCFM}
  499.     INLINE $701A, $ABED;
  500.     {$ENDC}
  501. FUNCTION SetDragMouse(theDrag: ScrapRef; globalPinnedMouse: Point): OSErr;
  502.     {$IFC NOT GENERATINGCFM}
  503.     INLINE $701B, $ABED;
  504.     {$ENDC}
  505. FUNCTION GetDragOrigin(theDrag: ScrapRef; VAR globalInitialMouse: Point): OSErr;
  506.     {$IFC NOT GENERATINGCFM}
  507.     INLINE $701C, $ABED;
  508.     {$ENDC}
  509. FUNCTION GetDragModifiers(theDrag: ScrapRef; VAR modifiers: SInt16; VAR mouseDownModifiers: SInt16; VAR mouseUpModifiers: SInt16): OSErr;
  510.     {$IFC NOT GENERATINGCFM}
  511.     INLINE $701D, $ABED;
  512.     {$ENDC}
  513. {
  514. _________________________________________________________________________________________________________
  515.     
  516.  * DRAG HIGHLIGHTING
  517. _________________________________________________________________________________________________________
  518. }
  519. FUNCTION ShowDragHilite(theDrag: ScrapRef; hiliteFrame: RgnHandle; inside: BOOLEAN): OSErr;
  520.     {$IFC NOT GENERATINGCFM}
  521.     INLINE $701E, $ABED;
  522.     {$ENDC}
  523. FUNCTION HideDragHilite(theDrag: ScrapRef): OSErr;
  524.     {$IFC NOT GENERATINGCFM}
  525.     INLINE $701F, $ABED;
  526.     {$ENDC}
  527. FUNCTION DragPreScroll(theDrag: ScrapRef; dH: SInt16; dV: SInt16): OSErr;
  528.     {$IFC NOT GENERATINGCFM}
  529.     INLINE $7020, $ABED;
  530.     {$ENDC}
  531. FUNCTION DragPostScroll(theDrag: ScrapRef): OSErr;
  532.     {$IFC NOT GENERATINGCFM}
  533.     INLINE $7021, $ABED;
  534.     {$ENDC}
  535. FUNCTION UpdateDragHilite(theDrag: ScrapRef; updateRgn: RgnHandle): OSErr;
  536.     {$IFC NOT GENERATINGCFM}
  537.     INLINE $7022, $ABED;
  538.     {$ENDC}
  539. {$ENDC}
  540. {
  541. _________________________________________________________________________________________________________
  542.     
  543.  * UTILITIES
  544. _________________________________________________________________________________________________________
  545. }
  546. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  547. FUNCTION WaitMouseMoved(initialMouse: Point): BOOLEAN;
  548.     {$IFC NOT GENERATINGCFM}
  549.     INLINE $7023, $ABED;
  550.     {$ENDC}
  551. {$ENDC}
  552. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  553. FUNCTION ZoomRects({CONST}VAR fromRect: Rect; {CONST}VAR toRect: Rect; zoomSteps: SInt16; acceleration: ZoomAcceleration): OSErr;
  554.     {$IFC NOT GENERATINGCFM}
  555.     INLINE $7024, $ABED;
  556.     {$ENDC}
  557. FUNCTION ZoomRegion(region: RgnHandle; zoomDistance: Point; zoomSteps: SInt16; acceleration: ZoomAcceleration): OSErr;
  558.     {$IFC NOT GENERATINGCFM}
  559.     INLINE $7025, $ABED;
  560.     {$ENDC}
  561. {$ENDC}
  562. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  563. {
  564. _________________________________________________________________________________________________________
  565.  * OLD NAMES
  566.    These are provided for compatiblity with older source bases.  It is recommended to not use them since
  567.      they may removed from this interface file at any time.
  568. _________________________________________________________________________________________________________
  569. }
  570.  
  571. CONST
  572.     dragHasLeftSenderWindow        = $00000001;                    {  drag has left the source window since TrackDrag  }
  573.     dragInsideSenderApplication    = $00000002;                    {  drag is occurring within the sender application  }
  574.     dragInsideSenderWindow        = $00000004;                    {  drag is occurring within the sender window  }
  575.  
  576.     dragTrackingEnterHandler    = 1;                            {  drag has entered handler  }
  577.     dragTrackingEnterWindow        = 2;                            {  drag has entered window  }
  578.     dragTrackingInWindow        = 3;                            {  drag is moving within window  }
  579.     dragTrackingLeaveWindow        = 4;                            {  drag has exited window  }
  580.     dragTrackingLeaveHandler    = 5;                            {  drag has exited handler  }
  581.  
  582.     dragRegionBegin                = 1;                            {  initialize drawing  }
  583.     dragRegionDraw                = 2;                            {  draw drag feedback  }
  584.     dragRegionHide                = 3;                            {  hide drag feedback  }
  585.     dragRegionIdle                = 4;                            {  drag feedback idle time  }
  586.     dragRegionEnd                = 5;                            {  end of drawing  }
  587.  
  588.     zoomNoAcceleration            = 0;                            {  use linear interpolation  }
  589.     zoomAccelerate                = 1;                            {  ramp up step size  }
  590.     zoomDecelerate                = 2;                            {  ramp down step size  }
  591.  
  592.     kDragStandardImage            = 0;                            {  65% image translucency (standard) }
  593.     kDragDarkImage                = 1;                            {  50% image translucency }
  594.     kDragDarkerImage            = 2;                            {  25% image translucency }
  595.     kDragOpaqueImage            = 3;                            {  0% image translucency (opaque) }
  596.  
  597. {$ENDC}
  598. {$ALIGN RESET}
  599. {$POP}
  600.  
  601. {$SETC UsingIncludes := DragIncludes}
  602.  
  603. {$ENDC} {__DRAG__}
  604.  
  605. {$IFC NOT UsingIncludes}
  606.  END.
  607. {$ENDC}
  608.